package es.project.sien7e.main.services;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;

import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import es.project.sien7e.main.model.Agenda;
import es.project.sien7e.main.model.Conexion;
import es.project.sien7e.main.model.Contador;
import es.project.sien7e.main.model.Directorio;
import es.project.sien7e.main.model.Foto;
import es.project.sien7e.main.model.Menu;
import es.project.sien7e.main.model.Municipio;
import es.project.sien7e.main.model.Provincia;
import es.project.sien7e.main.model.Rol;
import es.project.sien7e.main.model.Rolmenu;
import es.project.sien7e.main.model.Tipodirectorio;
import es.project.sien7e.main.model.Usuario;
import es.project.sien7e.main.model.Usuariorol;

@Service
public class DAOServiceImpl implements DAOService {
	private AgendaService agendaService;
	private ConexionService conexionService;
	private ContadorService contadorService;
	private DirectorioService directorioService;
	private FotoService fotoService;
	private MenuService menuService;
	private MunicipioService municipioService;
	private ProvinciaService provinciaService;
	private RolService rolService;
	private RolMenuService rolMenuService;
	private TipoDirectorioService tipoDirectorioService;
	private UsuarioService usuarioService;
	private UsuarioRolService usuarioRolService;

	@Autowired
	public void setAgendaService(AgendaService agendaService) {
		this.agendaService = agendaService;
	}

	@Autowired
	public void setConexionService(ConexionService conexionService) {
		this.conexionService = conexionService;
	}

	@Autowired
	public void setContadorService(ContadorService contadorService) {
		this.contadorService = contadorService;
	}

	@Autowired
	public void setDirectorioService(DirectorioService directorioService) {
		this.directorioService = directorioService;
	}

	@Autowired
	public void setFotoService(FotoService fotoService) {
		this.fotoService = fotoService;
	}

	@Autowired
	public void setMenuService(MenuService menuService) {
		this.menuService = menuService;
	}

	@Autowired
	public void setMunicipioService(MunicipioService municipioService) {
		this.municipioService = municipioService;
	}

	@Autowired
	public void setProvinciaService(ProvinciaService provinciaService) {
		this.provinciaService = provinciaService;
	}

	@Autowired
	public void setRolService(RolService rolService) {
		this.rolService = rolService;
	}

	@Autowired
	public void setRolMenuService(RolMenuService rolMenuService) {
		this.rolMenuService = rolMenuService;
	}

	@Autowired
	public void setTipoDirectorioService(
			TipoDirectorioService tipoDirectorioService) {
		this.tipoDirectorioService = tipoDirectorioService;
	}

	@Autowired
	public void setUsuarioService(UsuarioService usuarioService) {
		this.usuarioService = usuarioService;
	}

	@Autowired
	public void setUsuarioRolService(UsuarioRolService usuarioRolService) {
		this.usuarioRolService = usuarioRolService;
	}

	@Override
	public Usuario grabaUsuario(@Valid Usuario obj) {
		return usuarioService.grabaUsuario(obj);
	}

	@Override
	public Usuario insertaUsuario(@Valid Usuario obj) {
		return usuarioService.insertaUsuario(obj);
	}

	@Override
	public Integer borrarUsuario(@Valid Usuario obj) {
		return usuarioService.borrarUsuario(obj);
	}

	@Override
	public Menu grabaMenu(@Valid Menu obj) {
		return menuService.grabaMenu(obj);
	}

	@Override
	public Menu insertaMenu(@Valid Menu obj) {
		return menuService.insertaMenu(obj);
	}

	@Override
	public Integer borrarMenu(@Valid Menu obj) {
		return menuService.borrarMenu(obj);
	}

	@Override
	public Agenda grabaAgenda(@Valid Agenda obj) {
		return agendaService.grabaAgenda(obj);
	}

	@Override
	public Agenda insertaAgenda(@Valid Agenda obj) {
		return agendaService.insertaAgenda(obj);
	}

	@Override
	public Integer borrarAgenda(@Valid Agenda obj) {
		return agendaService.borrarAgenda(obj);
	}

	@Override
	public Directorio grabaDirectorio(@Valid Directorio obj) {
		return directorioService.grabaDirectorio(obj);
	}

	@Override
	public Directorio insertaDirectorio(@Valid Directorio obj) {
		return directorioService.insertaDirectorio(obj);
	}

	@Override
	public Integer borrarDirectorio(@Valid Directorio obj) {
		return directorioService.borrarDirectorio(obj);
	}

	@Override
	public Conexion grabaConexion(@Valid Conexion obj) {
		return conexionService.grabaConexion(obj);
	}

	@Override
	public Conexion insertaConexion(@Valid Conexion obj) {
		return conexionService.insertaConexion(obj);
	}

	@Override
	public Integer borrarConexion(@Valid Conexion obj) {
		return conexionService.borrarConexion(obj);
	}

	@Override
	public Tipodirectorio grabaTipodirectorio(@Valid Tipodirectorio obj) {
		return tipoDirectorioService.grabaTipodirectorio(obj);
	}

	@Override
	public Tipodirectorio insertaTipodirectorio(@Valid Tipodirectorio obj) {
		return tipoDirectorioService.insertaTipodirectorio(obj);
	}

	@Override
	public Integer borrarTipodirectorio(@Valid Tipodirectorio obj) {
		return tipoDirectorioService.borrarTipodirectorio(obj);
	}

	@Override
	public Rol grabaRol(@Valid Rol obj) {
		return rolService.grabaRol(obj);
	}

	@Override
	public Rol insertaRol(@Valid Rol obj) {
		return rolService.insertaRol(obj);
	}

	@Override
	public Integer borrarRol(@Valid Rol obj) {
		return rolService.borrarRol(obj);
	}

	@Override
	public Foto grabaFoto(@Valid Foto obj) {
		return fotoService.grabaFoto(obj);
	}

	@Override
	public Foto insertaFoto(@Valid Foto obj) {
		return fotoService.insertaFoto(obj);
	}

	@Override
	public Integer borrarFoto(@Valid Foto obj) {
		return fotoService.borrarFoto(obj);
	}

	@Override
	public Contador insertaContador(@Valid Contador obj) {
		return contadorService.insertaContador(obj);
	}

	@Override
	public Usuariorol insertaUsuariorol(@Valid Usuariorol obj) {
		return usuarioRolService.insertaUsuariorol(obj);
	}

	@Override
	public Integer borrarUsuariorol(@Valid Usuariorol obj) {
		return usuarioRolService.borrarUsuariorol(obj);
	}

	@Override
	public Rolmenu insertaRolmenu(@Valid Rolmenu obj) {
		return rolMenuService.insertaRolmenu(obj);
	}

	@Override
	public Integer borrarRolmenu(@Valid Rolmenu obj) {
		return rolMenuService.borrarRolmenu(obj);
	}

	@Override
	public Provincia grabaProvincia(@Valid Provincia obj) {
		return provinciaService.grabaProvincia(obj);
	}

	@Override
	public Provincia insertaProvincias(@Valid Provincia obj) {
		return provinciaService.insertaProvincias(obj);
	}

	@Override
	public Integer borrarProvincias(@Valid Provincia obj) {
		return provinciaService.borrarProvincias(obj);
	}

	@Override
	public Municipio grabaMunicipios(@Valid Municipio obj) {
		return municipioService.grabaMunicipios(obj);
	}

	@Override
	public Municipio insertaMunicipios(@Valid Municipio obj) {
		return municipioService.insertaMunicipios(obj);
	}

	@Override
	public Integer borrarMunicipios(@Valid Municipio obj) {
		return municipioService.borrarMunicipios(obj);
	}

	@Override
	public HashMap<Long, String> getMenusPadres(Long id) {
		return menuService.getMenusPadres(id);
	}

	@Override
	public List<Menu> getMenuPrincipal(Long id) {
		return menuService.getMenuPrincipal(id);
	}

	@Override
	public List<Menu> getMenuSecundario(Long id) {
		return menuService.getMenuSecundario(id);
	}

	@Override
	public List<Usuario> getUsuarios() throws SQLException {
		return usuarioService.getUsuarios();
	}

	@Override
	public List<Menu> getMenus() throws SQLException {
		return menuService.getMenus();
	}

	@Override
	public List<Menu> getMenusPadres() throws SQLException {
		return menuService.getMenusPadres();
	}

	@Override
	public List<Agenda> getAgendas() throws SQLException {
		return agendaService.getAgendas();
	}

	@Override
	public List<Directorio> getDirectorios() throws SQLException {
		return directorioService.getDirectorios();
	}

	@Override
	public List<Directorio> getListaDirectorios() throws SQLException {
		return directorioService.getListaDirectorios();
	}

	@Override
	public List<Tipodirectorio> getTiposdirectorios() throws SQLException {
		return tipoDirectorioService.getTiposdirectorios();
	}

	@Override
	public List<Tipodirectorio> getListaTiposdirectorios() throws SQLException {
		return tipoDirectorioService.getListaTiposdirectorios();
	}

	@Override
	public List<Provincia> getProvincias() throws SQLException {
		return provinciaService.getProvincias();
	}

	@Override
	public List<Provincia> getListadoProvincias() throws SQLException {
		return provinciaService.getListadoProvincias();
	}

	@Override
	public List<Municipio> getMunicipios() throws SQLException {
		return municipioService.getMunicipios();
	}

	@Override
	public List<Municipio> getMunicipios(Provincia provincia)
			throws SQLException {
		return municipioService.getMunicipios(provincia);
	}

	@Override
	public Long getMenu(String titulo) throws SQLException {
		return menuService.getMenu(titulo);
	}

	@Override
	public List<Rol> getRoles() throws SQLException {
		return rolService.getRoles();
	}

	@Override
	public List<Rol> getListaRoles() throws SQLException {
		return rolService.getListaRoles();
	}

	@Override
	public List<Foto> getFotos() throws SQLException {
		return fotoService.getFotos();
	}

	@Override
	public List<Usuariorol> getUsuariorols() throws SQLException {
		return usuarioRolService.getUsuariorols();
	}

	@Override
	public List<Rolmenu> getRolmenus() throws SQLException {
		return rolMenuService.getRolmenus();
	}

	@Override
	public List<Usuario> getListaUsuarios() throws SQLException {
		return usuarioService.getListaUsuarios();
	}

	@Override
	public List<Menu> getListaMenus() throws SQLException {
		return menuService.getListaMenus();
	}

	@Override
	public Usuario compruebaUsuario(Usuario usuario) throws SQLException {
		return usuarioService.compruebaUsuario(usuario);
	}
}
